package com.terrace.db.system.dao;

import java.util.List;
import java.util.Map;

import com.terrace.db.system.mapper.entity.Permission;

public interface PermissionDao {
	
	public int deleteByPermissionId(String id);

	public int savePermissionSelective(Permission permission);

	public Permission selectByPermissionId(String id);
	
	/**
	 * 通过父级ID查询子集列表
	 * @param parentPermiId
	 * @return
	 */
	public List<Permission> selectChildrenPermiByParentId(String parentPermiId);
	
	/**
	 * 根据查询条件查询权限列表--不进行分页查询
	 * @param permission
	 * @return
	 */
	public List<Permission> selectPermissionsBySelective(Permission permission);
	
	/**
	 * 根据查询条件分页查询权限列表
	 * @param permission
	 * @return
	 */
	public List<Permission> selectPermissionsForPagination(Permission permission);
	
	/**
	 * 根据用户id获取所有的操作权限
	 * @param userId
	 * @return
	 */
	public List<Permission> selectPermissionsByUserId(String userId);
	
	/**
	 * 根据条件获取权限ID列表
	 * @param condition
	 * @return
	 */
	public List<String> selectPermiIdsByCondition(Map<String, Object> condition);
	
	/**
	 * 根据用户id获取用户导航菜单列表
	 * @param userId
	 * @return
	 */
	public List<Permission> selectVisitMenuByUserId(String userId);

	public int updateByPermissionIdSelective(Permission permission);

}